<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1
        // for(var i=1;i<=5;i++) {
        //    (function(i){
        //     setTimeout(function timer(){
        //         console.log(i);
        //     },i*1000)
        //    })(i)
        // }
        // console.log(i);
        // 输出结果 612345

        // 2
        // var obj1={a:1,b:2,c:3,d:{e:4}}
        // var obj2={...obj1}
        // obj1.a=2;
        // obj1.d.e=5;
        // console.log(obj2);
        // 打印结果  {a:1,b:2,c:3,d:{e:5}}
        // 3
        setTimeout(function () {
            console.log(1);
        }, 0)
        new Promise(function (resolve) {
            console.log(2);
            resolve();
            console.log(3);
        }).then(function () {
            console.log(4);
        })
        // 打印结果 ：2341

        // 4如何给数组去重
        const arr = [12, 24, 37, 24, 49, 49, 55, 68]
        //   方式一  set
        // let arr1 =[...new Set(arr)]
        // console.log(arr1);
        // 方式二 map
        // const unique4 = arr => {
        //     const map = new Map();
        //     const res = [];
        //     for (let i = 0; i < arr.length; i++) {
        //         if (!map.has(arr[i])) {
        //             map.set(arr[i], true);
        //             res.push(arr[i]);
        //         }
        //     }
        //     return res;
        // }
        // console.log(unique4(arr,61));
        const exo=(arr)=>{
            const map=new Map()
            // 声明个新数组
            const newArr=[];
            // 循环遍历 判断是否有包含数组的每一项
            for (let i = 0; i < arr.length; i++){
                if(!map.has(arr[i])){
                    // set  可以设置数组项
                    map.set(arr[i], 'history');
                    // 将没有重复的添加到新数组
                    newArr.push(arr[i]);
                }
            }
            return newArr
        }
        console.log(exo(arr));
        // indexof
        // const unique2=(arr)=>{
        //     const res=[];
        //     for (let i = 0; i < arr.length; i++){
        //         //   判断
        //         if(!res.includes(arr[i])){
        //             res.push(arr[i]);
        //         }
        //     }
        //     return res;
        // }
        // console.log(unique2(arr));
        // include
        const unique3=(arr)=>{
            const res=[];
            for (let i = 0; i < arr.length; i++){
                if(!res.includes(arr[i])){
                    res.push(arr[i]);
                }
            }
            return res;
        }
        console.log(unique3(arr));

        //    ///    二      ///
        //  一 逻辑题 1


    </script>
</body>

</html>